//import 'dart:collection';
//
//import 'package:dio/dio.dart';
//import 'package:flutter_demo/common/Global.dart';
//
//class CacheObject {
//  CacheObject(this.response)
//      : timeStamp = DateTime.now().millisecondsSinceEpoch;
//
//  Response response;
//  int timeStamp;
//}
//
//class NetCache extends Interceptor {
//  var cache = new LinkedHashMap<String, CacheObject>();
//
//  void delete(String key) {
//    cache.remove(key);
//  }
//
//  @override
//  onRequest(RequestOptions options) {
//    // 如果用户登录信息中没有开启缓存的功能则不进行缓存
//    if (!Global.pro.cache.enable) {
//      return options;
//    }
//
//    // 判断是否刷新操作
//    bool refresh = options.extra['refresh'] == true;
//
//    if (refresh) {
//      // 判断是否是下拉刷新,下拉刷新需要删除链接的缓存
//      if (options.extra['list'] == true) {
//        cache.removeWhere((key, value) => key.contains(options.path));
//      } else {
//        // 如果不是下拉刷新则只删除uri相同的缓存
//        delete(options.uri.toString());
//      }
//      return options;
//    }
//
//    if (options.extra["noCache"] != true &&
//        options.method.toLowerCase() == 'get') {
//      String key = options.extra["cacheKey"] ?? options.uri.toString();
//      var ob = cache[key];
//      if (ob != null) {
//        //若缓存未过期，则返回缓存内容
//        if ((DateTime.now().millisecondsSinceEpoch - ob.timeStamp) / 1000 <
//            Global.pro.cache.maxAge) {
//          return cache[key].response;
//        } else {
//          //若已过期则删除缓存，继续向服务器请求
//          cache.remove(key);
//        }
//      }
//    }
//
//    _saveCache(Response object) {
//      RequestOptions options = object.request;
//      if (options.extra["noCache"] != true &&
//          options.method.toLowerCase() == "get") {
//        // 如果缓存数量超过最大数量限制，则先移除最早的一条记录
//        if (cache.length == Global.pro.cache.maxCount) {
//          cache.remove(cache[cache.keys.first]);
//        }
//        String key = options.extra["cacheKey"] ?? options.uri.toString();
//        cache[key] = CacheObject(object);
//      }
//    }
//
//    @override
//    onError(DioError err) async {
//      // 错误状态不缓存
//    }
//
//    @override
//    onResponse(Response response) async {
//      // 如果启用缓存，将返回结果保存到缓存
//      if (Global.pro.cache.enable) {
//        _saveCache(response);
//      }
//    }
//  }
//}
